// miniprogram/pages/publish/publish.js
const app=getApp()
var db=app.globalData.db;
const { $Message } = require('../../dist/base/index');
Page({

  /**
   * 页面的初始数据
   */
  data: {
    option: [
      { text: '物品交易', value: 0 },
      { text: '悬赏任务', value: 1 },
      { text: '学习组队', value: 2 },
      { text: '科研合作', value: 3 },
      { text: '组队出行', value: 4 },//下拉菜单的各个选项
    ],
    array1:["待选择","可议价","不可议价"],//物品交易是否可议价
    infoDividual:{},//个人信息
    time:Date.parse(new Date()),//当前时间的时间戳
    loading:true,//加载骨架屏
    value:0,
    show:false,//展示个人信息
    transactions:[],//发布的交易物品
    duties:[],//发布的悬赏任务
    studies:[],//发布的学习组队
    subjects:[],//发布的科研合作
    travels:[],//发布的出行组队
    visible2: false,
    //小程序没有refs，所以只能用动态布尔值控制关闭
    toggle : false,
    actions2: [
        {
            name: '删除',
            color: 'red'
        },
        {
          name:'取消',
          color:'gray'
        }
    ],
  },
  //进入临时聊天室
  onChat(e){
    wx.navigateTo({
      url: '../im/room/room?name='+e.currentTarget.dataset.id,
    })
  },
  //点击空白处关闭个人信息
  onClose(){
    this.setData({
      show:false
    })
  },
  //传递个人信息
  onClick(e){
    this.setData({
      infoDividual:e.currentTarget.dataset.info,
      show:true
    })
  },
  //切换展示栏
  changeItem(e){
    this.setData({
      value:e.detail
    })
  },
  //点击预览图片
  preview:function(e){
    const temp=[]
    e.currentTarget.dataset.url.forEach(item=>{
      temp.push(item.url)
    })
    wx.previewImage({
      current:temp[e.currentTarget.dataset.i],//当前展示图片链接
      urls: temp,//所有图片链接
    })
  },
  //点击复制电话号码
  copyPhone:function(e){
    wx.setClipboardData({
      data: e.currentTarget.dataset.text,
      success:res=>{
        wx.getClipboardData({
          success: (option) => {
            wx.showToast({
              title: '电话号码复制成功',
              icon:"success",
              duration:800,
              mask:true
            })
          },
        })
      }
    })
  },
    //点击复制微信
    copyWx:function(e){
      wx.setClipboardData({
        data: e.currentTarget.dataset.text,
        success:res=>{
          wx.getClipboardData({
            success: (option) => {
              wx.showToast({
                title: '微信号复制成功',
                icon:"success",
                duration:800,
                mask:true
              })
            },
          })
        }
      })
    },
//打开关闭询问
  actionsTap(e){
    this.id=e.currentTarget.dataset.id
    this.setData({
        visible2: true
    });
},
//点击屏幕空白部分关闭
handleCancel2 () {
  this.setData({
      visible2: false,
      toggle : this.data.toggle ? false : true
  });
},
//删除该项
handleClickItem2 (e) {
  if(e.detail.name==="删除")
  { 
    let collection=''
    //选择操作哪一个数据库
    switch(this.data.value){
    case 0:
      collection='publishedTransaction'
      break;
    case 1:
      collection='publishedDuty'
      break;
    case 2:
      collection='publishedStudy'
      break;
    case 3:
      collection='publishedSubject'
      break;  
    case 4:
      collection='publishedTravel'
      break;   
    }
    db.collection(collection).doc(this.id).remove({
      success:res=>{
        $Message({
          content: '删除成功',
          type: 'success'
      });
      db.collection(collection).orderBy('datetime','desc').where({
        _openid:app.globalData.openid
      }).get({
        success:res=>{
          switch(this.data.value){
            case 0:
              this.setData({
                transactions:res.data,
              })
              break;
            case 1:
              this.setData({
                duties:res.data,
              })
              break;
            case 2:
              this.setData({
                studies:res.data,
              })
              db.collection('chatroom').where({
                groupId:this.id
              }).remove()
              break;
            case 3:
              this.setData({
                subjects:res.data,
              })
              db.collection('chatroom').where({
                groupId: this.id
              }).remove()
              break;  
            case 4:
              this.setData({
                travels:res.data,
              })
              db.collection('chatroom').where({
                groupId: this.id
              }).remove()
              break;   
            }
        },
        fail:err=>{
          $Message({
            content: '查询失败，请重新尝试',
            type: 'error'
        });
        }
      })
      },
      fail:err=>{
        $Message({
          content: '删除失败，请重试',
          type: 'error'
      });
      }
    })
  }
  else{
      this.setData({
          visible2: false,
          toggle: this.data.toggle ? false : true
      });
    }
},
//异步操作同步化，加载初始数据
async loadOriginData(){
        //初始化时加载所有搜索结果
        await db.collection('publishedDuty').orderBy('datetime','desc').where({
          _openid:app.globalData.openid
        }).get({
          success:res=>{
            this.setData({
              duties:res.data,
            })
          },
          fail:err=>{
            $Message({
              content: '查询失败，请重新尝试',
              type: 'error'
          });
          }
        })
        await db.collection('publishedStudy').orderBy('datetime','desc').where({
          _openid:app.globalData.openid
        }).get({
          success:res=>{
            this.setData({
              studies:res.data,
            })
          },
          fail:err=>{
            $Message({
              content: '查询失败，请重新尝试',
              type: 'error'
          });
          }
        })
        await db.collection('publishedSubject').orderBy('datetime','desc').where({
          _openid:app.globalData.openid
        }).get({
          success:res=>{
            this.setData({
              subjects:res.data,
            })
          },
          fail:err=>{
            $Message({
              content: '查询失败，请重新尝试',
              type: 'error'
          });
          }
        })
        await db.collection('publishedTravel').orderBy('datetime','desc').where({
          _openid:app.globalData.openid
        }).get({
          success:res=>{
            this.setData({
              travels:res.data,
            })
          },
          fail:err=>{
            $Message({
              content: '查询失败，请重新尝试',
              type: 'error'
          });
          }
        })
        await db.collection('publishedTransaction').orderBy('datetime','desc').where({
          _openid:app.globalData.openid
        }).get({
          success:res=>{
            this.setData({
              transactions:res.data,
  
            })
          },
          fail:err=>{
            $Message({
              content: '查询失败，请重新尝试',
              type: 'error'
          });
          }
        })
        this.setData({
          loading:false
        })
},
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      value:parseInt(options.number)
    })
    this.loadOriginData()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})